#ifndef DURATION_HPP
#define DURATION_HPP

#include <QString>

QString formatDur(qint64 ms, bool isDelta = false) {
    bool isNeg = ms < 0;
    if (isNeg) ms *= -1;
    qint64 total_seconds = ms / 1000;

    int hours = static_cast<int>(total_seconds / 3600);
    int remaining_seconds = static_cast<int>(total_seconds % 3600);
    int minutes = remaining_seconds / 60;
    int seconds = remaining_seconds % 60;

    QString strTime;
    if (hours > 0) {
        // 格式：时:分:秒（小时部分无前导零）
        strTime = QString("%1:%2:%3")
                      .arg(hours)                             // 小时直接显示数值
                      .arg(minutes, 2, 10, QLatin1Char('0'))  // 分补零至两位
                      .arg(seconds, 2, 10, QLatin1Char('0')); // 秒补零至两位
    } else {
        // 格式：分:秒（始终显示两位）
        strTime = QString("%1:%2")
                      .arg(minutes, 2, 10, QLatin1Char('0'))
                      .arg(seconds, 2, 10, QLatin1Char('0'));
    }
    return isDelta ? (isNeg ? "-" + strTime : "+" + strTime) : strTime;
}

#endif // DURATION_HPP
